History-Independent Cuckoo Hashing
نویسندگان
چکیده
Cuckoo hashing is an efficient and practical dynamic dictionary. It provides expected amortized constant update time, worst case constant lookup time, and good memory utilization. Various experiments demonstrated that cuckoo hashing is highly suitable for modern computer architectures and distributed settings, and offers significant improvements compared to other schemes. In this work we construct a practical history-independent dynamic dictionary based on cuckoo hashing. In a history-independent data structure, the memory representation at any point in time yields no information on the specific sequence of insertions and deletions that led to its current content, other than the content itself. Such a property is significant when preventing unintended leakage of information, and was also found useful in several algorithmic settings. Our construction enjoys most of the attractive properties of cuckoo hashing. In particular, no dynamic memory allocation is required, updates are performed in expected amortized constant time, and membership queries are performed in worst case constant time. Moreover, with high probability, the lookup procedure queries only two memory entries which are independent and can be queried in parallel. The approach underlying our construction is to enforce a canonical memory representation on cuckoo hashing. That is, up to the initial randomness, each set of elements has a unique memory representation. ∗Incumbent of the Judith Kleeman Professorial Chair, Department of Computer Science and Applied Mathematics, Weizmann Institute of Science, Rehovot 76100, Israel. Email: [email protected]. Research supported in part by a grant from the Israel Science Foundation. †Department of Computer Science and Applied Mathematics, Weizmann Institute of Science, Rehovot 76100, Israel. Email: [email protected]. ‡Most of the work was done at Microsoft Research, Silicon Valley Campus. §Microsoft Research, Silicon Valley Campus, 1065 La Avenida, Mountain View, CA 94043. Email: uwieder@
منابع مشابه
On risks of using a high performance hashing scheme with common universal classes
The contribution of this thesis is a mathematical analysis a high performance hashing scheme called cuckoo hashing when combined with two very simple and efficient classes of functions that we refer to as the multiplicative class and the linear class, respectively. We prove that cuckoo hashing tends to work badly with these classes. In order to show this, we investigate how the inner structure ...
متن کاملBounds on the Independence Required for Cuckoo Hashing
Cuckoo Hashing is an efficient dynamic hashing technique. It uses two hash functions and hashes each key to the value indicated by either one of the hash functions. This is known to take expected O(1) amortized time per operation as long as the hash functions are chosen independently and have at least Θ(lg n)-independence. It is not known whether this much independence is actually required, and...
متن کاملCuckoo Hashing for Undergraduates
This lecture note presents and analyses two simple hashing algorithms: “Hashing with Chaining”, and “Cuckoo Hashing”. The analysis uses only very basic (and intuitively understandable) concepts of probability theory, and is meant to be accessible even for undergraduates taking their first algorithms course.
متن کاملWear Minimization for Cuckoo Hashing: How Not to Throw a Lot of Eggs into One Basket
We study wear-leveling techniques for cuckoo hashing, showing that it is possible to achieve a memory wear bound of log logn + O(1) after the insertion of n items into a table of sizeCn for a suitable constantC using cuckoo hashing. Moreover, we study our cuckoo hashing method empirically, showing that it significantly improves on the memory wear performance for classic cuckoo hashing and linea...
متن کامل6.856 Project: Bounds on the Independence Required for Cuckoo Hashing
In Cuckoo Hashing, we achieve expected O(1) amortized time per operation for dynamic hashing by using two hash functions and maintaining the property that each key is hashed to the value indicated by either of the hash functions [1]. This result is known as long as the hash functions are chosen independently and have O(lgn)-independence. In this paper, we show that only one of the hash function...
متن کامل